23

» WarCraft 3 / Инвентарь персонажа

Похожие вопросы:

ответ
дак можно же выключить нужный триггер на время замены, и сразу после неё включать
ответ
Если нужны только 2 типа атаки, то, может, подойдут способности сфер, которые включают атаку №2?
Тогда не нужно делать много типов юнитов.
ответ
Maniac_91, бред полный
NightCrawler, и получаем багоюз со стопом атаки (но всё остальное правильно)
надо юзать ддс
подробнее в статьях
а вообще походу кое кто копипастит зив
ответ
  1. прячем героя, вешаем дамми или эффект на цель
делаем проверку на нейтрала, если да - даем контроль и скилл для выхода
  1. при событии входа в регион делаем проверку на наличие предмета
если есть - делаем нужное действие

все необходимые действия и проверки есть в триггерах
если попытки действительно имели место - в студию

23

» WarCraft 3 / Как оптимизировать карту?

Похожие вопросы:

ответ
Roy Mustang:
ну у тебя там почти 1000 юнитов. конечно будет лагать, незнаю попробуй откл список кистей.
Окно - > Список кистей
ответ
XGM Bot:
Похожие вопросы:

ответ
Roy Mustang:
ну у тебя там почти 1000 юнитов. конечно будет лагать, незнаю попробуй откл список кистей.
Окно - > Список кистей
ответ
Патиссончик, про центр области не заметил
точка каждый раз создаётся заново и это утечка
Патиссончик, есть прога на сайте для записи логов
так же есть дебаг через прелоад на сайте
вот счётчик утечек
ответ
При конвертации моделей из игр в MDX их вес велик как и вес их текстур ! Я оптимизирую и сжимаю модель через MDLvis а текстуры через BLP Laboratory но их вес все еще внушителен ( Есть ли другие варианты среза веса без дефектов материала ?
Нет. Только удаление лишних анимаций. Остальную оптимизацию веса сделает mdlvis.
При импорте некоторых моделей в карту возникает проблема с их выбором при манипуляции ( Передвижения ) словно их Выбор отсутствует , Думаю некоторые с подобным сталкивались ...
Если модель нельзя выделить в игре курсором, у неё отсутствуют collision shapes (формы коллизии). Их можно добавить в War3ModelEditor -> Окна -> Редактор узлов -> правый клик -> Создать форму - > отредактировать размеры и положение. Их можно добавить несколько, чтобы покрыть модель целиком. Они отвечают за взаимодействие модели с курсором.

Один ресурс - один вопрос, после пойдут замечания.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
в самой последней строке самой последней функции присваивай какое-то значение глобалке и будет тебе счастье знать, что всё закончилось успешно

ответ
call SaveInteger(udg_Hash,StringHash("x"),1,GetPlayerId(GetOwningPlayer(Caster)))

function Trig_R_Boom takes unit d, unit c returns nothing

call GroupEnumUnitsInRange(g, x, y,500,Condition(function FilterR))
loop
	set f = FirstOfGroup(g)
    exitwhen f == null
    call UnitDamageTarget(c,f,400, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, null)
    call GroupRemoveUnit(g,f)
endloop

В конце функции Trig_R_Actions( )не обнулена переменная типа timer.
- Короче, вот:
function Trig_LOCAL_TimerR takes nothing returns nothing
    local  timer   timerer =  GetExpiredTimer( )
    local  integer i       =  GetHandleId( timerer )
    local  unit    Caster  =  LoadUnitHandle( udg_Hash, i, 4 )
    local  unit    Dummy   =  LoadUnitHandle( udg_Hash, i, 3 )
    local  real    xd      =  GetUnitX( Dummy )
    local  real    yd      =  GetUnitY( Dummy )
    local  group   g       =  null
    local  unit    f       =  null

    if ( GetWidgetLife( Dummy ) < 0.405 ) then

        set  g  =  CreateGroup( )

        call GroupEnumUnitsInRange( g, xd, yd, 500.0, null )
        loop
            set  f  =  FirstOfGroup( g )
            exitwhen ( f == null )
            call GroupRemoveUnit( g, f )

            if IsUnitEnemy( f, GetOwningPlayer( Caster ) ) and ( GetWidgetLife( f ) > 0.405 ) and ( not IsUnitType( f, UNIT_TYPE_STRUCTURE ) ) and ( not IsUnitType( f, UNIT_TYPE_FLYING ) ) then
                call UnitDamageTarget( Caster, f, 400.0, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, null )
            endif

        endloop

        call DestroyGroup( g )
        set  g  =  null

        call FlushChildHashtable( udg_Hash, i )
        call DestroyTimer( timerer )
        set  Dummy  =  CreateUnit( GetOwningPlayer( Caster ), 'u001', xd, yd, 0.0 )
        call UnitApplyTimedLife( Dummy, 'BTLF', 2.0 )

    else
        set  xd = GetUnitX( Dummy ) + 10.0 * Cos( GetUnitFacing( Dummy ) * bj_DEGTORAD )
        set  yd = GetUnitY( Dummy ) + 10.0 * Sin( GetUnitFacing( Dummy ) * bj_DEGTORAD )
        call SetUnitPosition( Dummy, xd, yd )
    endif

    set  timerer  =  null
    set  Caster   =  null
    set  Dummy    =  null
endfunction


function Trig_R_Actions takes nothing returns nothing
    local  unit     Caster   =  GetTriggerUnit( )
    local  real     xt       =  GetSpellTargetX( )
    local  real     yt       =  GetSpellTargetY( )
    local  real     xc       =  GetUnitX( Caster )
    local  real     yc       =  GetUnitY( Caster )
    local  unit     Dummy    =  CreateUnit( GetOwningPlayer( Caster ), 'u000', xc, yc, bj_RADTODEG * Atan2( yt - yc, xt - xc ) )
    local  timer    timerer  =  CreateTimer( )
    local  integer  i        =  GetHandleId( timerer )

    call SetUnitAnimation( Dummy, "Birth" )
    call UnitApplyTimedLife( Dummy, 'BTLF', 1.0 )
    call SaveUnitHandle( udg_Hash, i, 3, Dummy )
    call SaveUnitHandle( udg_Hash, i, 4, Caster )
    call TimerStart( timerer, 0.01, true, function Trig_LOCAL_TimerR )

    set  Caster   =  null
    set  Dummy    =  null
    set  timerer  =  null
endfunction

23

» WarCraft 3 / Плавная камера и World Editor...

Похожие вопросы:

ответ
~8gabriel8:
Вот карта с двумя примерами:
Ещё камера может двигаться по высоте ландшафта и не перекрываясь многими игровыми объектами, что помешают виду. Это следующие два действия за тем, что во втором примере.

Ах да, скрин:

23

» WarCraft 3 / Jass тригеры

Похожие вопросы:

ответ
Это значит, что WE не смог обработать код. Следовательно, были допущены ошибки синтаксиса, опечатки или что-то в этом роде.
Чтобы "знатоки" могли сказать конкретнее, опубликуйте код.
+
И да, установите JNGP — в нём сообщения об ошибках корректные.
ответ
так как я неспособен понять такую гору ненужных строк советую раскрыть бж и хотя бы немного уменьшить количество кода,например:
function Trig_Kupol_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A013' ) ) then
return false
endif
return true
endfunction
заменить на
function Trig_Kupol_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 'A013' 
endfunction
судя по всему фатал вызывает то что функция function PC_action берёт юнита хотя должна быть
function PC_action takes nothing returns nothing
странно что редактор ошибку не выдал
джнгп используешь?
и запомни функции которые вызываются :
TriggerAddAction
ForGroup
и прочими должны быть takes nothing returns nothing
исключение: функции вызываемые из Condition которые должны takes nothing returns boolean
плохо читал статьи
или не все прочитал а только базовый курс 2005 года
ответ
Галочка
ответ
Starman2222, брали гуишный код и конвертили в джасс
узнав основы синтаксиса таким образом переходили к функциям
открывали комон и близард джи и изучали функции
ключевой вещью был мозг
без него ты даже 1 пункт не осилишь
теперь же есть статьи которые снижают время на изучение
но всё ещё требуют мозг
в общем если мозг есть то читай статьи
а если нету то займись чем нибудь полезным для общества
ответ
Загугли "Jass New Gen Pack Rebuild", вылезет ссылка на сайт xgm (то есть на этот сайт) с постом о нужном тебе редакторе.

23

» WarCraft 3 / Дамми

Похожие вопросы:

ответ
Создаешь две переменные - TempPoint (тип - точка), TempUnit (тип - боевая единица)
Событие - Приводит способность в действие
Условие - Применяемая способность = "Твоя способность"
Действия:
TempPoint = позиция применяющего юнита
TempUnit = Создать твоего дамми в TempPoint
Создать таймер смерти для TempUnit на 1.0 секунд
Заставить юнита выполнить приказ (тут уже сам разберешься)
Custom Script'ом вводишь код: call RemoveLocation(udg_TempPoint)
А вообще, если у тебя более-менее серьезный проект, то советую перейти на Джасс, ибо на ГУИ в картах ниже быстродействие из-за дополнительных вызовов через БЖ-функции, а также утечки, которые как ни крути не устранишь полностью. Да и сам Джасс гораздо удобнее и функциональнее
ответ
Я бы начал с проверки фильтров и условий выводом текстовых сообщений на экран, чтобы убедиться в том, что гребёт только одного.
Скорее всего не обновляется выбранный юнит во втором цикле, я по крайней мере не вижу ни массива, ни другого механизма передачи позиции следующего юнита.
ответ
~8gabriel8:
Когда просто запускаю твою карту, то всё нормально, но если внесу изменения и пересохраняю, даже просто пересохраняю, то она перестаёт загружаться в игре, может быть ты какую-то защиту ставил? Я планировал сделать видимой модель дамми, так как работник несёт ресурсы не в ратушу, а справа от неё, то есть предположительно дамми на свободном месте, но при этом работник ополченцем не становится. Да и вообще как-то глючно работает. Ратуша начальная не улучшается компьютером, только ратуши у новых рудников, работник может добывать дерево у нового рудника, но нести его к начальной базе, хотя только что перед этим носил на базу рядом с новым рудником. Короче, глючное какое-то поведение - надо бы видеть модель дамми.
P. S. Создал карту, куда скопировал дамми, дал ему видимую модель и начал проверять. Действительно не выполняется "К оружию", если юнит над Ратушей, но если ей дать меньшую карту путей, то способность срабатывает, немного другая карта путей, но того же размера у Обсерватории-она тоже не работает. Много всего перепробовал поменять в редакторе объектов, но никак не получалось сделать призыв работающим. Тогда я из блокираторов путей решил попробовать сделать рабочую карту путей, вот каким работающий вариант получился:
Для сравнения поместил рядом ратушу. Синий цвет у карты путей обозначает, что нельзя строить, розовый, что нельзя строить и ходить. Нам важен лишь розовый цвет. Опытным путём определил, что необходимо сделать не розовым второй квадратик в правом верхнем углу сверху, необязательно тот, что у меня отсутствует, можно и тот, который выделил. Можно и больше убрать, у меня показан необходимый минимум.
То есть надо сделать новую карту путей для Ратуши/Крепости/Замка. Новые карты путей я не делал, потому не подскажу более, но есть ссылка на статью:
ответ
call CreateUnit(GetOwningPlayer(caster),'e000',kursor_x,kursor_y,0.00)
set dummy = bj_lastCreatedUnit
нативная CreateUnit не записывает юнита в bj_lastCreatedUnit, это делают только БЖ функции (вон там префикс bj_)
поменяй на
set dummy = CreateUnit(GetOwningPlayer(caster),'e000',kursor_x,kursor_y,0.00)

23

» WarCraft 3 / Wurst

Похожие вопросы:

ответ
  1. Никогда, честно говоря, не задумывался.
  2. Заботься о чистоте когда. Любой скриптовой язык пишется для удобства программиста, производительность это не главная вещь, о которой в нем нужно задумываться.
8gabriel8:
Что за visual code? Чтобы тестирование не запускалось в оконном режиме, убери отсюда галку:
Visual Studio Code
Wurst работает с кодом карты и РО из внешнего текстового редактора, на WE остается переключаться разве что ради ландшафта. Это к тому, что JNGP или SharpCraft с Wurst используются не часто.
ответ
Ответ нашёлся, табуляции не было...

23

» WarCraft 3 / Кампании на 1.30

Похожие вопросы:

ответ
RunXM:
Naadir:
А, та самая кампания! (что???)
Где обещанная ссылка?
Имя главного персонажа ни о чём не говорит, сюжет бы сюда вписался лучше.
Подправил, сойдет?
Нет, по-видимому, продолжения пока нет.

23

» WarCraft 3 / JASS создание и удаление эффекта

Похожие вопросы:

ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.

23

» WarCraft 3 / Система стана

Похожие вопросы:

ответ
в моей карте лимит пищи 300, но всегда стоит "нет расходов"
я не совсем понимаю что тебе нужно
ответ
Steal nerves:
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)

событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок.
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.
ответ
Steal nerves:
ответы
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
ответ
Нет.
ответ
посмотри как у урсы сделано
Там и скорость атаки (со счетчиком ударов) есть и алгоритм добавления зеленого урона

23

» WarCraft 3 / Проблема с JNGP

Похожие вопросы:

ответ
Меню RtC - убери галочку с enable.
ответ
Кириллицы в пути к JNGP или к карте нету?
ответ
Для какой программы ставишь запуск от админа? Нужно для worldeditor121.exe в папке с варкрафтом.
ответ
Steal nerves:
сложно сказать что это
попробуй это xgm.guru/p/wc3/178775 это руководство как пользоваться JNGP
если не поможет, то обратись к Ханабичи
ответ
В последней сборке JNPG:R pjass.exe очень странный, сам добавляет Condition() там, где их нет и пр.
Это легко исправить, скачай последний pjass.exe и замени оригинальный файл в папке jasshelper, которая в папке JNPG.
Есть ещё сборка R3 у меня, а также оригинальные JNPG, могу кинуть.

23

» WarCraft 3 / Как сменить анимацию Атаки?

Похожие вопросы:

ответ
Чтобы при подборе меча игрались анимации для меча - можно укзать
Анимация - add animation tag to unit - first например. Будут проигрываться attack first, walk first и т.д. При отсутствии таковых будут играться бестеговые анимации.
Теги не какие попало добавляются, насколько я помню.
Используемые теги: fast, victory, first, second,third, fourth, fifth, swim, ready, alternate.
ответ
Сфера + анимационный тег или морф?
ответ
gabriel_fisher, скорее всего, тебе нужны анимационные теги
теги бывают разные: alternate, gold, lumber, defend, flesh и др
например, у рабочего есть анимации attack, walk, death и если ему добавить тег lumber, тогда вместо этих анимаций будут проигрываться attack lumber, walk lumber и death lumber соответственно.
Теги можно добавлять/убирать тригерно
Анимация - Add/Remove Animation Tag
или с помощью jass
native AddUnitAnimationProperties takes unit whichUnit, string animProperties, boolean add returns nothing
Также теги можно добавлять в Редакторе Объектов
Графика - Нужная анимация

23

» WarCraft 3 / 2 вопроса на разные темы

Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

  1. Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
ответ
старый запрос

23

» WarCraft 3 / Таймер

Похожие вопросы:

ответ
Происходящее здесь напомнило мне один случай из моего далекого прошлого. В те времена я еще только начинал осваивать редактор. Одна из тем, которая меня заинтересовала и по которой мне не удалось найти достаточно полной информации - утечки. Тогда я пошел на один форум и задал простой вопрос о том, как определить наличие и степень серьезности утечек в карте, не перебирая весь код. В результате я получил тонну флуда и "ответ от профи", с которым все в итоге согласились - фрагмент кода с ценным указанием "если это число растет быстро - утечек много, если медленно - мало или нет вовсе". Код представлял из себя таймер с малым периодом, который создавал объект, брал его хендл, писал в чат и удалял объект, но был один нюанс - создаваемый объект утекал на каждой итерации таймера.
ответ
дык вы периодический таймер делайте, и каждые N секунд меняйте текст, пока не истечет время.
о том что время должно быть в переменной я надеюсь вы знаете
ответ
~8gabriel8:
Пока нет желания разбираться, что у тебя так, а что не так. Но вижу, что переменная Window не назначена окну, а ещё как бы создаются в цикле одновременно 10 окон, которые потом все одновременно ждут 50 секунд. Вот скрин действий триггера вместо двух твоих, секунда ожидания поставлена для того, чтобы увидеть пропадание окна таймера.
ответ
avuremybe, не обращай на него внимание
он сам не понимает что пишет
avuremybe, можешь впихнуть в карту счётчик утечек и проверить
или создать 100500 таймеров и посмотреть как изменился объём затраченной оперативы

23

» WarCraft 3 / Как сделать пассивку?

Похожие вопросы:

ответ
Мб это негейшин (амулет защиты) из него мона делать пассивку с кулдауном, для активации кастануть даммиком какойнить скилл в юнита с негейшином, будет кд.
Потом как кд пройдет негейшин удалить и добавить пассивку, ну и так далее.
ответ
Опен дота в помощь, тупо добавление пассивки на скорость атаки при каждом ударе, потом если юнит бьет другую цель, то удаляем половину бонуса.
ответ
10 - это 1000%.
0.10 - это 10%
0.50 - это 50% соответственно
а 1 это 100%
ответ
У пассивок кроме креста перерождения и эксгумации труповозки нет кулдауна, ну совсем нет! Так что берем перерождение и рисуем на нем кулдаун мемхаком, а чем эффект крита или блока изображаем триггерно ну или вручаем, удаляем эти пассивки в заблочннном спелбуке юниту.
ответ
лучше при изучении способности на первом уровне создать триггер, реагирующий только на событие unit атакован (или получает урон, что там тебе надо) для изучившего
тогда триггер будет гораздо меньше нагружать игру

23

» WarCraft 3 / Руны

Похожие вопросы:

ответ
вот тут посмотри. Там должно быть.
ответ
Steal nerves:
раскрыть
  1. Существуют оригинал и их копия - руна. Руна пропадает при ее подборе или покупки.
  2. В магазине и на земле лежат руны.
  3. Каждый раз когда дропают с инвентаря оригинал, то пикают все итемы на карте и подменяют на руны. В нее можно передавать заряды. Однако, происходит это не сразу. Но этого можно не заметить
  4. При получении руны сама руна исчезает. Короче можно узнать тип руны (ид). Проверяем различные связки скрещивания итемов (циклом пробегаем, какие итемы есть в инвентаре героя). Есть не идет одна связка, то следующую связку проверяем, если и эта не идет, то следующую. И так далее, если все связки не прокатили, то возвращаем оригинал. Если это зарядовые итемы (бутылочки всякие), то можно складывать. Кстати сам манипулирующий итем удаляем
  5. есть еще такие хитрости когда связка должна иметь две одинаковые пары носков и одну пару ботинков. Нужно циклом перечитывать сколько одинаковых итемов лежит в инвентаре
  6. есть в гуи проверка, что герои имеет итем определенного типа. Но некуда не годится это. Во-первых, тут утечка - необнуленная локалка. И во-вторых, это пункт 5, то что выше (когда нужно проверить, есть ли два одинаковых итема. Это делается циклом).
то что скинул, это просто пример для новичков. когда то сам с этого начинал
ответ
~8gabriel8:
8i728v5:
Я честно сомневаюсь, что тебе это поможет найти ответ на мой вопрос. (Прикрепил!)
В РО в возможных способностях юнитов стоит Носильщик (человек), там 2 ячейки для переноса, убери это и будет срабатывать с первого раза.
ответ
Воскрешает моба из которого выпала эта руна в качестве лута.

23

» WarCraft 3 / Случайный спавн игроков

Похожие вопросы:

ответ
Ну просто найди исходную позицию игрока, GetPlayerStartLocalion() - зная игрока ты находишь место его спауна, все же просто?

23

» WarCraft 3 / Совет для новичка

Похожие вопросы:

ответ
...кстати о которой, кто-нибудь таки хочет мне помочь с разработкой? Или я уж тему прикрою?
ответ
откат системы?
ответ
N7 Molot:
тут помогут: xgm.guru/p/wc3/needmodels
ответ
Не берите вы эти ульты для основы своих скиллов, они сделаны через одно место лиж бы работали в капмании, а там дальше хоть потоп.
Сделайте заклинание из канала, а юнитов вокруг делайте неуязвимыми.

23

» WarCraft 3 / Уровень рельефа

Похожие вопросы:

ответ
NiktoTakoy, заполнить всю карту водой
потом поднять уровень земли (вода исчезнет)
после чего триггерно опускать уровень земли в нужном месте (модификаторы рельефа смотри)
в результате в тех местах где опустили уровень рельефа возникнет вода
ответ
В редакторе существует максимальная высота рельефа, и минимальная высота рельефа, и за пределы этих ограничителей никакой Zephyr не вылезает. Кстати, Zephyr не может влиять на код, ЕМНИП.
ответ
Можно ли менять уровень рельефа (аналог действия +/- 1-2 в Редакторе Рельефа) триггерами или джасс?
И аналогичный вопрос про воду. Можно?
Нельзя менять ни уровни склонов, ни уровень воды. Можно только уровень земли менять. (Типа как просто «повысить/понизить» в редакторе.)
ответ
Нужно отредактировать файл MiscData, чтобы создавать более крутые склоны (тогда зависимость высоты от размера кисти уменьшится).
А именно строку "MaxSlope=50" на "MaxSlope=90".

23

» WarCraft 3 / Мобы 2

Похожие вопросы:

ответ
Да проще в группы их пихать, и не придётся проверку на области делать.
ответ
ну очень примитивно сделал.
ответ
nvc123, внутри GetRectCenter нет утечки
// blizzard.j:1772
function GetRectCenter takes rect whichRect returns location
    return Location(GetRectCenterX(whichRect), GetRectCenterY(whichRect))
endfunction
а эвент регистрируется 1 раз, так что можно забить
// blizzard.j:7959
function TriggerRegisterEnterRectSimple takes trigger trig, rect r returns event
    local region rectRegion = CreateRegion()
    call RegionAddRect(rectRegion, r)
    return TriggerRegisterEnterRegion(trig, rectRegion, null)
endfunction
Другое дело, что у order есть утечка, но это нативно, она минимальная и это никак не исправляется.
ответ
Тебе надо в изначальной точке или в определенной точке
если в изначальной то это очень хорошая система, сам пользуюсь
ответ
  1. Даешь одиннадцатому игроку видимость над всей картой. Даешь нужным боевым единицам радиус агрессии на всю карту.
    Если не работает, то: Во время спавна мобов даешь им приказ атаковать ближайшего героя, если ЛЮБОЙ герой умер, повторяешь это действие.
  2. Если юнит манипулирует когтями
    Выкинуть когти
    Если юнит манипулирует когтями
    Поднять когти
    Удалить когти
    Удалить когти
    Создать нужный предмет
P.S. Неужели планируешь создать свою Goblin Survival? Пересекались на боте, может помнишь меня. Ты еще грузился по несколько лет в карту и назвал меня школьником, лол.

23

» WarCraft 3 / Мобы

Похожие вопросы:

ответ
Solo, "Отдать приказ - тип цель/точка/без цели" там находишь спелл, из которого сделал свой нестандартный. На джасе проще
ответ
Мб "Дистанция получения приказа" в редакторе объектов поставить на 99999, и дать игроку-компу чьи мобы видимость на всю карту.
ответ
nvc123, внутри GetRectCenter нет утечки
// blizzard.j:1772
function GetRectCenter takes rect whichRect returns location
    return Location(GetRectCenterX(whichRect), GetRectCenterY(whichRect))
endfunction
а эвент регистрируется 1 раз, так что можно забить
// blizzard.j:7959
function TriggerRegisterEnterRectSimple takes trigger trig, rect r returns event
    local region rectRegion = CreateRegion()
    call RegionAddRect(rectRegion, r)
    return TriggerRegisterEnterRegion(trig, rectRegion, null)
endfunction
Другое дело, что у order есть утечка, но это нативно, она минимальная и это никак не исправляется.
ответ
подобных систем 100500 же
да и делается изи
атачим к юниту его точку респавна (для тех у кого боязнь джасса можно юзать кастом вэлью)
когда юнит умирает то извлекаем приатаченную точку и запускаем вейт
по окончанию вейта создаём юнита в точке и атачим к нему эту точку
на гуи это 2 триггера
если хочется оптимально то стоит перейти на джасс и не насиловать себе мозги этими окошками
ответ
Тебе надо в изначальной точке или в определенной точке
если в изначальной то это очень хорошая система, сам пользуюсь

23

» WarCraft 3 / Убрать ману

Похожие вопросы:

ответ
Реализовать триггерно. Если это не очевидно - значит твои навыки не позволяют сделать этого. Однако спелл простой - поищи где-нибудь в заклинаниях на заказ или на хайве.
ответ
Убери прирост характеристик, а стартовую характеристику поставь на 1. В игровом интерфейсе и константах можно переписать названия статистик, или убрать с их любой смысл, сделав прирост атаки за ед статы к 0 и т.д.
Иконку тоже можно изменить.
ответ
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
ответ
Sergarr, все, понял, спасибо. Хотя эти параметры и установлены по умолчанию в 1, но помогает отключение и включение заново - тогда начинает работать.
Steal nerves, спасибо за разъяснения.

23

» WarCraft 3 / Очередные баги в анимации

Похожие вопросы:

ответ
Если первый кадр анимации правильный, попробуйте удалить последний кадр анимации, потом скопировать кадр в её начале (Именно через команду "Кадры" - "Копировать (Ctrl + C)" !) и вставить его в конец. То же самое проделать с другой анимацией (Stand 2). Если это не поможет, тогда надо детально смотреть саму модель, что с ней не так. И ещё советую сохранять промежуточные версии модели, чтоб можно было сделать "откат", если возникнут ошибки.
ответ
проверьте анимацию в model editor'е
если там криво, значит нужно искать кривой кадр, копировать его, удалять, и вставлять снова на то же место

23

» WarCraft 3 / Как поставить другую текстуру для модели?

Похожие вопросы:

ответ
Подытожу сказанное: Шкалу можно поменять на другой цвет несколькими способами
  1. Как предлагает nvc123: через mix
  2. Напрямую в архивие MPQ
  3. ???????
  4. PRIFIT
Во всех случаях цвет шкалы будет сменен лишь на локальном компьютере.
ответ
Модель битая или текстуры не в соответствующем качестве. Раздел текстур модели вроде бы прописан верно. Количество текстур и пути тоже в порядке. Но не импортируется как должно. Замени модель на другую.
Попробуй эту версию
Да, эта работает. В анимации stand видимость была не задана. Да там собственно и анимаций никаких нет.
Но выглядит она как-то не красиво. Второй вариант (1а) получше- тектстуры ОК
Вот он

23

» WarCraft 3 / Мемхак

Похожие вопросы:

ответ
Разумеется можно, но лишь те у которых есть кулдаун индикатор, это перерождение и вроде абилка труповозки "эксгумация".
Так же желательно юзать новую функцию запуска в кд, некоторые абилки у меня баговали, целая тема была про это.
ответ
SimvolMira, знает, но в паблик велено не выкладывать.